package com.ruoyi.user.service.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.check.CheckEmptyUtil;
import com.ruoyi.user.domain.UserLabel;
import com.ruoyi.user.mapper.UserLabelMapper;
import com.ruoyi.user.service.IUserLabelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 客户标签设置Service业务层处理
 *
 * @author ruoyi
 * @date 2025-04-10
 */
@Service
public class UserLabelServiceImpl implements IUserLabelService {
    @Autowired
    private UserLabelMapper userLabelMapper;

    /**
     * 查询客户标签设置
     *
     * @param id 客户标签设置主键
     * @return 客户标签设置
     */
    @Override
    public UserLabel selectUserLabelById(Long id) {
        return userLabelMapper.selectUserLabelById(id);
    }

    /**
     * 查询客户标签设置列表
     *
     * @param userLabel 客户标签设置
     * @return 客户标签设置
     */
    @Override
    public List<UserLabel> selectUserLabelList(UserLabel userLabel) {
        return userLabelMapper.selectUserLabelList(userLabel);
    }

    /**
     * 新增客户标签设置
     *
     * @param userLabel 客户标签设置
     * @return 结果
     */
    @Override
    public int insertUserLabel(UserLabel userLabel) {
        if (!CheckEmptyUtil.isEmpty(userLabel.getLabelName())){
            Long l = userLabelMapper.selectId(userLabel.getLabelName());
            if (!CheckEmptyUtil.isEmpty(l)){
                throw new RuntimeException("该标签已存在");
            }
        }
        userLabel.setCreateTime(DateUtils.getNowDate());
        return userLabelMapper.insertUserLabel(userLabel);
    }

    /**
     * 修改客户标签设置
     *
     * @param userLabel 客户标签设置
     * @return 结果
     */
    @Override
    public int updateUserLabel(UserLabel userLabel) {
        if (!CheckEmptyUtil.isEmpty(userLabel.getLabelName())){
            Long l = userLabelMapper.selectId(userLabel.getLabelName());
            if (!CheckEmptyUtil.isEmpty(l)){
                throw new RuntimeException("该标签已存在");
            }
        }
        userLabel.setUpdateTime(DateUtils.getNowDate());
        return userLabelMapper.updateUserLabel(userLabel);
    }

    /**
     * 批量删除客户标签设置
     *
     * @param ids 需要删除的客户标签设置主键
     * @return 结果
     */
    @Override
    public int deleteUserLabelByIds(Long[] ids) {
        return userLabelMapper.deleteUserLabelByIds(ids);
    }

    /**
     * 删除客户标签设置信息
     *
     * @param id 客户标签设置主键
     * @return 结果
     */
    @Override
    public int deleteUserLabelById(Long id) {
        return userLabelMapper.deleteUserLabelById(id);
    }
}
